www.gusucode.com > XbPhp开发框架 v1.4.5PHP源码程序 > XbPhp开发框架 v1.4.5/xbphp/xbphp/XbPhp/Component/MailComponent.php

    <?php
/**
 * 发送mail组件
 * @author wave
 */


class MailComponent {
	
	/**
	 * 發送EMAIL的組件
	 * @param Array $opt 發送的數據
	 * @author wave
	 */
	public function mail_send($opt = array()) {
		set_time_limit(0);
		Socket::$address = $opt['address'];
		Socket::$port =  $opt['port'];
		$_data = array(
			0 => "EHLO ".$opt['cc']."\r\n",
			1 => "AUTH LOGIN\r\n",
			2 => base64_encode($opt['form'])."\r\n",
			3 => base64_encode($opt['pass'])."\r\n",
			4 => "MAIL FROM: <".$opt['form'].">\r\n",
			5 => "RCPT TO: <".$opt['to'].">\r\n",
			6 => "Content-Type: text/html; charset=\"utf-8\"\r\n",
			7 => "DATA\r\n",
			8 => "Form: ".$opt['cc']."<".$opt['form'].">\r\nTo: ".$opt['to']."\r\nSubject: ".$opt['title']."\r\n\r\n".$opt['body']."\r\n",
			9 => "\r\n.\r\n",
			10 => "QUIT\r\n"
		);
		$jilu = array(); //記錄發送數組
		foreach($_data as $k => $v) {
			Socket::$data = $v;
			Socket::send();
			$jilu['ok'][$k] = Socket::read();
			if(!in_array($k,array(7,8))){

			}
			if($k - count($_data) == 0) {
				if(substr(Socket::read(), 0,3) != "250") {
					$jilu['err'] = Socket::read();
				}
			}
		}
		Socket::colse();
		return isset($jilu['err']) ? $jilu['err'] : 'ok';
	}



}